A. Field of the Invention
The field of the invention relates generally to a method and apparatus for displaying, selecting, and setting options as part of a graphical user interface for a computer program.
B. Description of the Related Art
Graphical user interfaces are commonly used by computer systems to enable computer operators to simply and effectively control the computers in those systems. A computer operator typically will manipulate a variety of graphical objects within such interfaces such as: desktops, windows, cursors, folders, files, icons, buttons, menus, control panels and dialog boxes, to accomplish a variety of tasks on the system. Such graphical user interfaces can play an important role in simplifying computer tasks so that they may be more easily understood and accomplished, even by unsophisticated users. Such graphical user interfaces may also provide improved control over the operation of the computer system and enable a user to easily accomplish tasks that might be difficult to accomplish with other types of interfaces.
A typical graphical user interface provides a display in which windows may be used to organize and show graphical user interface objects associated with application programs and documents, on a CRT or other display device. Graphical user interface objects that enable the user to accomplish the variety of tasks typically are also provided in the display. Generally a keyboard and a mouse, or similar pointing device, are provided with the computer system for selecting options and interacting with the objects in the graphical user interface. Typically, the mouse will have one or more buttons each of which cause the computer to respond in a programmed manner. A user manipulates the cursor on the display by moving the mouse. The cursor may be represented on the display by a wide variety of images such as a vertical bar, an arrow, a hand, a pencil, a can of paint, an eraser or any other desired symbol. The keyboard typically has keys, possibly in foreign languages or symbol sets, for data entry purposes along with other keys which the operating system or application programs can program to respond in various fashions. To interact with objects in the graphical user interface, the user uses the input devices to activate and work with graphical user interface objects. For example, to activate a graphical user interface button object, a user would move the mouse so that the cursor was over the graphical user interface button object and then activate the appropriate mouse button.
The advantages of graphical user interfaces may enhance the ability of application programs to provide users with desired functions or operations. Application programs can include programs such as word processors, spreadsheets, World Wide Web browsers and other Internet related software, finance software, personal information managers, graphics modeling and animation programs, or any of a wide variety of other programs. Using graphics modeling and animation programs as an example, graphical user interfaces may enhance the users ability to create and manipulate the images or scenes and to manipulate the objects being drawn, modeled or animated in an image or scene. The graphical user interface for an application program is typically implemented as a menu bar, a tool bar, a floating tool pad, or a combination of the three.
A menu bar is typically comprised of menus indicated by keywords, sometimes paired with images, arranged along the top, sides or the bottom of the display or each window. By pointing the cursor at a menu in a menu bar and activating a mouse button, the menu expands toward the center of the screen to reveal one or more choices, typically the choices are represented by keywords. Some of the choices may be commands or functions, while others may activate sub-menus. The sub-menus typically appear alongside the menu with the first item of the sub-menu lined up with the choice from the original menu that opened the sub-menu. A sub-menu may itself contain keywords that open sub-sub-menus, and so on. This hierarchical and recursive organization of the menu provides a compact and intuitive format for presenting commands to the user. A well known example of a menu is the "Start" button in the Windows 95.TM. operating system. The main disadvantage of a menu is that the user may have to traverse multiple levels of the hierarchy to activate a command. Although the hierarchy assists the user in remembering the command, the traversal to the command itself may require several mouse movements and activations for each access to the command which slows the user down.
The tool bar or tool pad typically is comprised of several icons, drawn to resemble buttons on the screen, arranged linearly (tool bar) or in a square or rectangular matrix (tool pad). The user activates the commands represented by the buttons on a tool bar by pointing the cursor at the button and activating a mouse button. Each button on a tool bar activates a particular function. The main advantage of a tool bar is speed and convenience. The functions on a tool bar may be activated by pressing a single mouse button without the necessity to traverse the hierarchy of a menu. The disadvantage of a tool bar is that because of its flat organization, it grows in size very rapidly as buttons are added. Tool bars are typically not hierarchical like menus. The typical approach to adding hierarchy to Tool bars is to include controls in a tool bar that when activated, will place another tool bar on the screen adjacent to the first tool bar. When the original control is selected again, the second tool bar is removed from the screen. With each tool bar that is added, albeit temporarily, limited display space is used up and the user is relegated to a smaller area for viewing results. Since the size of the CRT or other display device is limited, as a tool bar grows in size it obscures other parts of the display, including the portion of the display used to show the user the result of the commands, such as the document display area in a word processing program or the view ports displaying the 3D objects being created and modified by the user of a graphics modeling program. Most programs therefore strike a compromise by providing both menus and Tool bars and permitting the user to customize the tool bar and to move the tool bar to different portions of the screen. When tool pads are used, they are typically programmed as "floaters" and may be moved around and placed anywhere on the screen by the user while the program is in use. As the sophistication and complexity of computer programs increase, more and more screen space must be devoted to Tool bars, tool pads, and similar features to accommodate the additional functionality of the programs. If the hierarchical compactness of a menu could be provided in a tool bar, thus permitting the tool bar to expand without using up additional space on the screen, the growing number of functions of sophisticated computer programs could be displayed in a convenient format for the user, while minimizing the screen space utilized to accommodate the functions.
Accordingly, what is needed is a method and apparatus to provide a more compact presentation of groups of functions contained entirely within a single element of the graphical user interface.